package com.gxuwz.stats.service;

import com.gxuwz.stats.entity.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.List;

@Service
@Slf4j
public class ExcelDataConverter {

//    public User convertToUser(TotalWorkExcelDTO dto) {
//        return User.builder()
//                .username(dto.getUsername())
//                .department(dto.getDepartment())
//                .degree(dto.getDegree())
//                .position(dto.getPosition())
//                .post(dto.getPost())
//                .build();
//    }
//
//    public TotalWork convertToTotalWork(TotalWorkExcelDTO dto, Integer userId) {
//        return TotalWork.builder()
//                .userId(userId)
//                .quotaStandard(dto.getQuotaStandard())
//                .projectScore(dto.getProjectScore())
//                .academicWorkScore(dto.getAcademicWorkScore())
//                .decisionConsultingScore(dto.getDecisionConsultingScore())
//                .creativeAchievementScore(dto.getCreativeAchievementScore())
//                .intellectualPropertyScore(dto.getIntellectualPropertyScore())
//                .transferScore(dto.getTransferScore())
//                .awardScore(dto.getAwardScore())
//                .networkCultureScore(dto.getNetworkCultureScore())
//                .paperScore(dto.getPaperScore())
//                .activityScore(dto.getActivityScore())
//                .platformScore(dto.getPlatformScore())
//                .totalScore(dto.getTotalScore())
//                .remarks(dto.getRemarks())
//                .build();
//    }
//
//    public List<ResearchProject> convertToProjects(ResearchProjectExcelDTO dto, Integer userId) {
//        List<ResearchProject> projects = new ArrayList<>();
//
//        // 转换国家级项目
//        if (StringUtils.hasText(dto.getNationalProjectName())) {
//            projects.add(ResearchProject.builder()
//                    .userId(userId)
//                    .projectName(dto.getNationalProjectName())
//                    .projectLevel("国家级")
//                    .projectCategory(getOrDefault(dto.getNationalCategory(), ""))
//                    .projectStatus(getOrDefault(dto.getNationalStatus(), ""))
//                    .projectFunding(getOrDefault(dto.getNationalFunding(), 0.0))
//                    .projectScore(getOrDefault(dto.getNationalScore(), 0))
//                    .build());
//        }
//
//        // 转换省部级项目
//        if (StringUtils.hasText(dto.getProvincialProjectName())) {
//            projects.add(ResearchProject.builder()
//                    .userId(userId)
//                    .projectName(dto.getProvincialProjectName())
//                    .projectLevel("省部级")
//                    .projectCategory(getOrDefault(dto.getProvincialCategory(), ""))
//                    .projectStatus(getOrDefault(dto.getProvincialStatus(), ""))
//                    .projectFunding(getOrDefault(dto.getProvincialFunding(), 0.0))
//                    .projectScore(getOrDefault(dto.getProvincialScore(), 0))
//                    .build());
//        }
//
//        // 转换市厅级项目
//        if (StringUtils.hasText(dto.getCityProjectName())) {
//            projects.add(ResearchProject.builder()
//                    .userId(userId)
//                    .projectName(dto.getCityProjectName())
//                    .projectLevel("市厅级")
//                    .projectCategory(getOrDefault(dto.getCityCategory(), ""))
//                    .projectStatus(getOrDefault(dto.getCityStatus(), ""))
//                    .projectFunding(getOrDefault(dto.getCityFunding(), 0.0))
//                    .projectScore(getOrDefault(dto.getCityScore(), 0))
//                    .build());
//        }
//
//        // 转换校级项目
//        if (StringUtils.hasText(dto.getSchoolProjectName())) {
//            projects.add(ResearchProject.builder()
//                    .userId(userId)
//                    .projectName(dto.getSchoolProjectName())
//                    .projectLevel("校级")
//                    .projectCategory(getOrDefault(dto.getSchoolCategory(), ""))
//                    .projectStatus(getOrDefault(dto.getSchoolStatus(), ""))
//                    .projectFunding(getOrDefault(dto.getSchoolFunding(), 0.0))
//                    .projectScore(getOrDefault(dto.getSchoolScore(), 0))
//                    .build());
//        }
//
//        // 转换横向项目
//        if (StringUtils.hasText(dto.getTransverseProjectName())) {
//            projects.add(ResearchProject.builder()
//                    .userId(userId)
//                    .projectName(dto.getTransverseProjectName())
//                    .projectLevel("横向")
//                    .projectCategory(getOrDefault(dto.getTransverseCategory(), ""))
//                    .projectStatus(getOrDefault(dto.getTransverseStatus(), ""))
//                    .projectFunding(getOrDefault(dto.getTransverseFunding(), 0.0))
//                    .projectScore(getOrDefault(dto.getTransverseScore(), 0))
//                    .build());
//        }
//
//        // 转换自筹项目
//        if (StringUtils.hasText(dto.getSelfProjectName())) {
//            projects.add(ResearchProject.builder()
//                    .userId(userId)
//                    .projectName(dto.getSelfProjectName())
//                    .projectLevel("自筹")
//                    .projectCategory(getOrDefault(dto.getSelfCategory(), ""))
//                    .projectStatus(getOrDefault(dto.getSelfStatus(), ""))
//                    .projectFunding(getOrDefault(dto.getSelfFunding(), 0.0))
//                    .projectScore(getOrDefault(dto.getSelfScore(), 0))
//                    .build());
//        }
//
//        return projects;
//    }
//
//    // 辅助方法：获取默认值
//    private String getOrDefault(String value, String defaultValue) {
//        return value != null ? value : defaultValue;
//    }
//
//    private Integer getOrDefault(Integer value, Integer defaultValue) {
//        return value != null ? value : defaultValue;
//    }
//
//    private Double getOrDefault(Double value, Double defaultValue) {
//        return value != null ? value : defaultValue;
//    }
}
